mongodb数据库入门

文档地址:

搜索 nodejs 菜鸟教程

https://www.runoob.com/nodejs/nodejs-mongodb.html

连接数据库

  1. 安装依赖

    npm i mongodb
    
  2. 修改router.js, 连接数据库

    var MongoClient = require("mongodb").MongoClient;
    // huruqing 数据库名称
    var url = "mongodb://106.55.50.108:27017/huruqing";
    // 连接数据库,db-数据库
    var dbase;
    MongoClient.connect(url, function (err, db) {
      if (err) {
        console.log(err);
      } else {
        console.log("数据库已创建!");
        // 获取数据库对象
        dbase = db.db("huruqing");
      }
    });
    

创建集合

  1. 新增接口

    router.all("/addColl", function (ctx) {
      dbase.createCollection("user", function (err, res) {
        if (err) throw err;
        console.log("集合创建成功!");
      });
      ctx.body = '创建集合';
    });
    
  2. 访问接口即可

    http://localhost:3000/addColl
    
  3. 添加集合时输出结果

    • 修改app.js的代码 (添加async await)

      app.use(async function (ctx,next) {
        ctx.set("Access-Control-Allow-Origin", "*");
        ctx.set("Access-Control-Allow-Methods", "PUT, POST, GET, DELETE, OPTIONS");
        // 请求头设置
        ctx.set(
          "Access-Control-Allow-Headers",
          `Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild,x-token,sessionToken,token`
        );
        if (ctx.method == "OPTIONS") {
          ctx.body = 200;
        } else {
          await next();
        }
      });
      
    • 修改router.js的代码

      router.all("/addColl", async function (ctx) {
        var collName = ctx.query.collName;  
      
        try {
          let res = await dbase.createCollection(collName);
          ctx.body = '集合创建成功';
        } catch (error) {
          ctx.body = '集合创建失败'; 
        } 
      });
      

添加数据

router.js

router.all("/add", async function (ctx) {
  // 获取参数 
  var myobj = ctx.request.body;   
  try { 
    var res = await dbase.collection("user").insertOne(myobj);
    ctx.body = {
      code: 1,
      msg: '插入成功',
      data:res
    };
  } catch (error) {
    ctx.body = {
      code: 0,
      msg: '插入失败',
    };
  } 
});

add.html

axios.post(url, data).then(function (res) { 
	if (res.data.code == 1) {
		alert('添加成功');
		location.href = './index.html';
	} else {
		alert('添加失败');
	} 
})

查询列表

router.js

// 列表接口
router.all("/list", async function (ctx) {
  try {
    let res = await dbase.collection("user"). find({}).toArray();
    ctx.body = {
      code:1,
      msg: 'success',
      data: res
    };
  } catch (error) {
    ctx.body = {
      code: 0,
      msg: 'error'
    }
  }
});

index.html

  function getList() {
      var url = 'http://localhost:3000/list';
      axios.get(url).then(function (res) {
        if (res.data.code == 1) {
          list = res.data.data; 
          render(list);
        } else {
          alert('获取列表失败')
        } 
      })
    }

删除数据

router.js

var ObjectId = require("mongodb").ObjectId; 

// 删除接口
router.all("/del", async function (ctx) {
  var _id = ctx.request.body._id;
  try {
    var whereStr = { _id: ObjectId(_id)};
    var res = await dbase.collection("user").deleteOne(whereStr);
    // deletedCount的值大于0才是删除成功
    if (res.deletedCount > 0) {
      ctx.body = {
        code: 1,
        msg: "删除成功",
        data: res,
      };
    } else {
      ctx.body = {
        code: 0,
        msg: "删除失败",
      };
    }
  } catch (error) {
    ctx.body = {
      code: 0,
      msg: "删除失败",
    };
  }
});

try catch

console.log(1);
try {
  console.log(a);
} catch (error) {
  console.log("代码出错了");
}
console.log(2);

用户小项目源码地址

http://soft.huruqing.cn/code/用户管理小项目(mongodb).zip